package cn.bonoon.kernel.expression;

/**
 * <pre>
 * 定义界面的取值的方式
 * </pre>
 * @author jackson
 *
 */
public enum QueryParameterType{
	/**
	 * 直接引用，不处理，出现问题不负责
	 */
	DIRECT {
		@Override
		public void parse(StringBuilder html, String value) {
			html.append(value);
		}
	},
	/**
	 * 生成的格式如：$!{[object.]fieldName}
	 */
	PROPERTY {
		@Override
		public void parse(StringBuilder html, String value) {
			//javascript没有强类型，所以可以直接使用引号''把值包起来json会自动映射为相应的类型的
			html.append("'$!{").append(value).append("}'");
		}
	},
	/**
	 * 生成的格式如：jQuery('#fieldId').val()
	 */
	INPUT {
		@Override
		public void parse(StringBuilder html, String value) {
			html.append("jQuery('#").append(value).append("').val()");
		}
	},
	DATEBOX {
		@Override
		public void parse(StringBuilder html, String value) {
			html.append("jQuery('#").append(value).append("').bupdateinput('value')");
		}
	};
	public abstract void parse(StringBuilder html, String value);
}